package com.muyu.danmo.domain;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 画廊作品对象 danmo_gallery_works
 *
 * @author yangle
 * @date 2024-10-23
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DanmoGalleryWorks extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 画廊作品id */
    private Long id;

    /** 作者 */
    @Excel(name = "作者")
    private String author;
    /** 标题 */
    @Excel(name = "标题")
    private String title;

    /** 图片路径 */
    @Excel(name = "图片路径")
    private String imageUrl;

    /** 创作日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创作日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date creationDate;

    /** 作品宽度（厘米） */
    @Excel(name = "作品宽度", readConverterExp = "厘=米")
    private Long width;

    /** 作品高度（厘米）。 */
    @Excel(name = "作品高度", readConverterExp = "厘=米")
    private Long height;

    /** 作品类型（书法、篆刻、国画、美术等） */
    @Excel(name = "作品类型", readConverterExp = "书=法、篆刻、国画、美术等")
    private Long typeId;

    /** 作品介绍 */
    @Excel(name = "作品介绍")
    private String introduction;

    /** 展览方式（仅展览、竞拍、直售） */
    @Excel(name = "展览方式", readConverterExp = "仅=展览、竞拍、直售")
    private Long exhibitionType;

    /** 起拍价 */
    @Excel(name = "起拍价")
    private Long startingPrice;
    /** 当前价 */
    @Excel(name = "当前价")
    private Long currentPrice;

    /** 加价幅度 */
    @Excel(name = "加价幅度")
    private Long increment;

    /** 开始竞拍时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "竞拍时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date auctionDate;

    /** 竞拍时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "竞拍时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endAuction;



    /** 品相（全新、九五新、九成新等） */
    @Excel(name = "品相", readConverterExp = "全=新、九五新、九成新等")
    private Long conditionId;

    /** 浏览量 */
    @Excel(name = "浏览量")
    private Long views;

    /** 画廊id */
    @Excel(name = "画廊id")
    private Long detailsId;

    private Integer pageNum=1;
    private Integer pageSize=10;

    private List<DanmoGalleryWorksPictures> danmoGalleryWorksPicturesList;
    /**
     * 来源于店铺
     */
    private String derived;
     /**
     * 图片
     */
    private String picture;


    /**
     * 出家次数
     */
    private Long bidFrequency;

    /**
     * 预计到达时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计到达时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Long estimatedTime;

//    public void setId(Long id)
//    {
//        this.id = id;
//    }
//
//    public Long getId()
//    {
//        return id;
//    }
//    public void setAuthor(String author)
//    {
//        this.author = author;
//    }
//
//    public String getAuthor()
//    {
//        return author;
//    }
//    public void setImageUrl(String imageUrl)
//    {
//        this.imageUrl = imageUrl;
//    }
//
//    public String getImageUrl()
//    {
//        return imageUrl;
//    }
//    public void setCreationDate(Date creationDate)
//    {
//        this.creationDate = creationDate;
//    }
//
//    public Date getCreationDate()
//    {
//        return creationDate;
//    }
//    public void setWidth(Long width)
//    {
//        this.width = width;
//    }
//
//    public Long getWidth()
//    {
//        return width;
//    }
//    public void setHeight(Long height)
//    {
//        this.height = height;
//    }
//
//    public Long getHeight()
//    {
//        return height;
//    }
//    public void setTypeId(Long typeId)
//    {
//        this.typeId = typeId;
//    }
//
//    public Long getTypeId()
//    {
//        return typeId;
//    }
//    public void setIntroduction(String introduction)
//    {
//        this.introduction = introduction;
//    }
//
//    public String getIntroduction()
//    {
//        return introduction;
//    }
//    public void setExhibitionType(Long exhibitionType)
//    {
//        this.exhibitionType = exhibitionType;
//    }
//
//    public Long getExhibitionType()
//    {
//        return exhibitionType;
//    }
//    public void setStartingPrice(Long startingPrice)
//    {
//        this.startingPrice = startingPrice;
//    }
//
//    public Long getStartingPrice()
//    {
//        return startingPrice;
//    }
//    public void setIncrement(Long increment)
//    {
//        this.increment = increment;
//    }
//
//    public Long getIncrement()
//    {
//        return increment;
//    }
//    public void setAuctionDate(Date auctionDate)
//    {
//        this.auctionDate = auctionDate;
//    }
//
//    public Date getAuctionDate()
//    {
//        return auctionDate;
//    }
//    public void setConditionId(Long conditionId)
//    {
//        this.conditionId = conditionId;
//    }
//
//    public Long getConditionId()
//    {
//        return conditionId;
//    }
//    public void setViews(Long views)
//    {
//        this.views = views;
//    }
//
//    public Long getViews()
//    {
//        return views;
//    }
//    public void setDetailsId(Long detailsId)
//    {
//        this.detailsId = detailsId;
//    }
//
//    public Long getDetailsId()
//    {
//        return detailsId;
//    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("author", getAuthor())
            .append("imageUrl", getImageUrl())
            .append("creationDate", getCreationDate())
            .append("width", getWidth())
            .append("height", getHeight())
            .append("typeId", getTypeId())
            .append("introduction", getIntroduction())
            .append("exhibitionType", getExhibitionType())
            .append("startingPrice", getStartingPrice())
            .append("increment", getIncrement())
            .append("auctionDate", getAuctionDate())
            .append("conditionId", getConditionId())
            .append("views", getViews())
            .append("detailsId", getDetailsId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("title", getTitle())
            .append("currentPrice", getCurrentPrice())
            .append("bidFrequency", getBidFrequency())
            .append("estimatedTime", getEstimatedTime())
            .toString();
    }
}
